function Person(name,age) {
    this.name=name;
    this.age=age;
}

const p1 = new Person('张三',18);
console.log(p1);
//通过 new 出来的实例，访问到的属性，叫做 【实例属性】

//通过 构造函数，直接访问到的属性，叫做【静态属性】
Person.info = 'aaaa'

console.log(Person.info)


console.log('======================================')

class Animal {
    //类中的构造器
    //每一个类中，都有一个构造器，如果没有手动指定构造器，那么可以认为类内部有一个隐形的空构造器，类似于constructor(){}
    //作用，每当实例化这个类的时候，必然会优先执行构造器中的代码
    constructor(name,age){
        this.name=name;
        this.age=age;
    }

    //在class内部，通过static修饰的属性，就是静态属性
    static info = "我是class的静态属性：info"
}

const a1 = new Animal('大黄',3)
console.log(a1)
console.log(a1.name)//实例属性
console.log(a1.age)//实例属性
console.log(Animal.info)//info 是Animal的静态属性